package com.tz.fruit.dao;

import com.tz.fruit.entity.*;

import java.util.List;

/**
 * Created by CHEN on 2017/7/19.
 */


public interface IProductDao {
    /**
     * 商品接口：
     * 添加商品
     */
    void save(Product p);

    /**
     * 根据Id删除商品
     */
    void delById(Long pid);

    /**
     * 更新商品
     */
    void update(Product p);

    /**
     * 多条件组合查询商品
     */
    List<Product> findAll(String keyWord, RecState recState, Category category, String loc, boolean order, Long pageNow, Long pageSize);

    /**
     * 查询满足条件的商品总记录数
     */
    Long findRows(String keyWord, RecState recState, Category category, String loc);

    /**
     * 根据Id查询商品
     */
    Product findById(Long pid);


    /**
     * 根据编号查询商品
     */
    Product findByPNo(String pNo);

    /**
     * 根据名称查询商品
     */
    Product findByPName(String pName);

    /**
     * 类别接口：
     * 添加商品分类
     */
    void save(Category c);

    /**
     * 根据Id删除商品分类
     */
    void delByCategoryId(Long categoryId);

    /**
     * 更新商品分类
     */
    void update(Category c);

    /**
     * 多条件组合查询商品分类
     */
    List<Category> findAllCategory(String categoryNo, String categoryName);

    /**
     * 根据Id查询商品分类
     */
    Category findByCategoryId(Long categoryId);

    /**
     * 根据编号查询商品分类
     */
    Category findByCategoryNo(String categoryNo);

    /**
     * 根据名称查询商品分类
     */
    Category findByCategoryName(String categoryName);



    /**
     * 简介接口：
     * 添加商品简介
     */
    void save(Intro intro);

    /**
     * 根据Id删除商品简介
     */
    void delByIntroId(Long introId);

    /**
     * 更新商品简介
     */
    void update(Intro intro);

    /**
     * 根据商品Id查询所有商品简介
     */
    List<Intro> findIntroByPid(Long pid);

    /**
     * 根据Id查询商品简介
     */
    Intro findByIntroId(Long introId);

    /**
     * 根据名称查询商品简介
     */
    Intro findByKey(String key);



    /**
     * 评论接口：
     * 添加商品评论
     */
    void save(Comment comment);

    /**
     * 根据Id删除商品评论
     */
    void delByCommmentId(Long commmentId);

    /**
     * 更新商品评论
     */
    void update(Comment comment);

    /**
     * 根据商品Id查询所有商品评论
     */
    List<Comment> findCommentByPid(Long pid);

    /**
     * 根据Id查询商品评论
     */
    Comment findByCommmentId(Long commmentId);






    /**
     * 图片接口:
     * 添加商品图片
     */
    void save(Image image);

    /**
     * 根据Id删除商品图片
     */
    void delByImageId(Long imageId);

    /**
     * 更新商品图片
     */
    void update(Image image);

    /**
     * 根据商品Id查询所有商品图片
     */
    List<Image> findImgByPid(Long pid);

    /**
     * 根据Id查询商品图片
     */
    Image findByImageId(Long imageId);


    List<Comment> findAllC(Long id, Long pageNow, Long pageSize);
    Long findRowsC(Long id);
    Product findProductById(Long id);

    Long findPidByPNo(String pNo);

}


